package com.cd.university.service;

import com.cd.university.common.RestResult;
import com.cd.university.controller.form.MessageIdForm;
import com.cd.university.db.pojo.Message;
import org.springframework.scheduling.annotation.Async;

import java.util.List;

/**
 * 消息接口
 * @author 陈栋
 * @create 2021/11/22 21:54
 */
public interface MessageService {

    /**
     * 团队成员邀请消息
     * @param message 消息
     */
    @Async
    public void teamInvitation(Message message);

    /**
     * 项目通过审核(初审或者二审),通知所有的成员
     * @param message 消息
     */
    @Async
    public void projectApproved(Message message);

    /**
     * 项目的结题申请消息,通知所有的成员
     * @param message 消息
     */
    @Async
    public void submitFinalApplication(Message message);

    /**
     * 通过了项目的结题申请消息,通知所有的成员
     * @param message 消息
     */
    @Async
    public void passFinalApplication(Message message);

    /**
     * 发送消息
     * @param userId 用户id
     * @param pageNum 页数
     * @param pageSize 每页个数
     * @return 统一响应格式
     */
    public RestResult sendMessage(Integer userId, Integer pageNum, Integer pageSize);

    /**
     * 确认用户消息
     * @param messageIdList 消息列表
     * @return 统一响应格式
     */
    public RestResult approveMessage(List<MessageIdForm> messageIdList);

    /**
     * 确认一个用户的全部消息
     * @param userId 用户id
     * @return 统一响应格式
     */
    public RestResult approveAllByUserId(Integer userId);

}
